package com.dao;
import com.entity.SysMenu;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
/**
 * @author lanouhn
 */
@Repository
public interface SysMenuMapper{
	/**
	 * 获得SysMenu数据的总行数
	 * @return
	 */
    long getSysMenuRowCount();
	/**
	 * 获得SysMenu数据集合
	 * @return
	 */
    List<SysMenu> selectSysMenu();
	/**
	 * 获得一个SysMenu对象,以参数SysMenu对象中不为空的属性作为条件进行查询
	 * @param obj
	 * @return
	 */
    SysMenu selectSysMenuByObj(SysMenu obj);
	/**
	 * 通过SysMenu的id获得SysMenu对象
	 * @param id
	 * @return
	 */
    SysMenu selectSysMenuById(Integer id);
	/**
	 * 通过SysMenu的id获得SysMenu对象
	 * @param id
	 * @return
	 */
	String selectParentNameById(Integer id);
	/**
	 * 插入SysMenu到数据库,包括null值
	 * @param value
	 * @return
	 */
    int insertSysMenu(SysMenu value);
	/**
	 * 插入SysMenu中属性值不为null的数据到数据库
	 * @param value
	 * @return
	 */
    int insertNonEmptySysMenu(SysMenu value);
	/**
	 * 批量插入SysMenu到数据库,包括null值
	 * @param value
	 * @return
	 */
    int insertSysMenuByBatch(List<SysMenu> value);
	/**
	 * 通过SysMenu的id删除SysMenu
	 * @param id
	 * @return
	 */
    int deleteSysMenuById(Integer id);
	/**
	 * 通过SysMenu的id更新SysMenu中的数据,包括null值
	 * @param enti
	 * @return
	 */
    int updateSysMenuById(SysMenu enti);
	/**
	 * 通过SysMenu的id更新SysMenu中属性不为null的数据
	 * @param enti
	 * @return
	 */
    int updateNonEmptySysMenuById(SysMenu enti);

	/**
	 * 分页菜单列表
	 *
	 *
	 * @since 2016年8月11日 下午9:28:54
	 * @param search
	 * @return
	 */
	List<SysMenu> getPageList(@Param("search") String search, @Param("subSQL") String subSQL);

	/**
	 * 多条删除
	 *
	 * @since 2016年9月25日 下午12:06:35
	 * @param idlist
	 * @return
	 */
	int deleteByPrimaryKeys(@Param("idlist") List<Integer> idlist);

}